package feifei.homeworkfei;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/user/register.action")
public class RegisterUserServlet extends HttpServlet {


    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置编码字符集
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=UTF-8");
        // 注册  注册要做校验  用户名使用过不能再使用
        ServletContext context = this.getServletContext();
        // 先从context中取值  // loginUser ---->value--->List
        List<User> userList = (List<User>) context.getAttribute("loginUser");
        // 获取请求当中的参数值
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 判断取的值和从请求中获取的值是否相等
        boolean isReg = false;
        if (userList != null && userList.size() != 0) {
            // 代表userList中是有值
            for (int i = 0;i<userList.size();i++) {
                if (userList.get(i).getUsername().equals(username)) {
                    isReg = true;
                    break;
                }
            }
        } else {
            userList = new ArrayList<>();
        }
        // 如果相等，代表注册过了，就不能注册
        if (isReg) {
            //给客户端写一个数据 ：该用户名已经注册过了,请换一个名字
            resp.getWriter().write("该" + username + "已经注册过了,请换一个名字");
        } else {
            // 如果不相等，代表没有注册过，就可以正常注册
            // 创建一个User对象
            User user = new User(username,password);
            // 把user放进list当中
            userList.add(user);
            // 把userList存进context域中
            context.setAttribute("loginUser",userList);
            // 已经注册过了 跳转到登录页面  去登录
            resp.sendRedirect(req.getContextPath() + "/login.html");
        }

    }


}
